home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / bsd / sys / ioctl.h < prev    next >
Text File  |  1995-02-14  |  17KB  |  402 lines

  1. /* 
  2.  * Mach Operating System
  3.  * Copyright (c) 1987 Carnegie-Mellon University
  4.  * All rights reserved.  The CMU software License Agreement specifies
  5.  * the terms and conditions for use and redistribution.
  6.  *
  7.  *    Copyright (c) 1994 NeXT Computer Inc.
  8.  */
  9.  
  10. /*
  11.  * HISTORY
  12.  *    11-May-94 AOF (NeXT)
  13.  *    Multicast support from Stanford
  14.  *
  15.  *  7-Jan-93  Mac Gillon (mgillon) at NeXT
  16.  *    Integrated POSIX support
  17.  *
  18.  * 04-Dec-89  Mike DeMoney (mike) at NeXT
  19.  *  Added PASS8OUT for cooked EUC support
  20.  *
  21.  * 27-Feb-88  John Seamons (jks) at NeXT
  22.  *    Changed macros to conform to ANSI C.
  23.  *
  24.  * 13-Feb-88  John Seamons (jks) at NeXT
  25.  *    NeXT: enable 4.2 manifest TIOCSCONS.
  26.  *
  27.  * 30-Jan-87  Mike Accetta (mja) at Carnegie-Mellon University
  28.  *    CS_RPAUSE: Added FIOCNOSPC definition.
  29.  *    [ V5.1(F1) ]
  30.  *
  31.  * 24-Dec-86  Bill Bolosky (bolosky) at Carnegie-Mellon University
  32.  *    romp: Added TIOCCONS ioctl for RT console silliness.
  33.  *
  34.  *  5-Aug-86  Jonathan J. Chew (jjc) at Carnegie-Mellon University
  35.  *    Added for Sun:
  36.  *    1) Added mouse and keyboard disciplines for Sun
  37.  *
  38.  * 25-Jan-86  Avadis Tevanian (avie) at Carnegie-Mellon University
  39.  *    Upgraded to 4.3.
  40.  *
  41.  * 10-Jul-85  Robert V Baron (rvb) at Carnegie-Mellon University
  42.  *    Added SIOCBROAD to enable udp broadcast.
  43.  */
  44.  
  45. /*
  46.  * Copyright (c) 1982, 1986 Regents of the University of California.
  47.  * All rights reserved.  The Berkeley software License Agreement
  48.  * specifies the terms and conditions for redistribution.
  49.  *
  50.  *    @(#)ioctl.h    7.1 (Berkeley) 6/4/86
  51.  */
  52.  
  53. /*
  54.  * Some of the Posix support comes from this:
  55.  */
  56. /*-
  57.  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
  58.  * All rights reserved.
  59.  *
  60.  * Redistribution and use in source and binary forms, with or without
  61.  * modification, are permitted provided that the following conditions
  62.  * are met:
  63.  * 1. Redistributions of source code must retain the above copyright
  64.  *    notice, this list of conditions and the following disclaimer.
  65.  * 2. Redistributions in binary form must reproduce the above copyright
  66.  *    notice, this list of conditions and the following disclaimer in the
  67.  *    documentation and/or other materials provided with the distribution.
  68.  * 3. All advertising materials mentioning features or use of this software
  69.  *    must display the following acknowledgement:
  70.  *    This product includes software developed by the University of
  71.  *    California, Berkeley and its contributors.
  72.  * 4. Neither the name of the University nor the names of its contributors
  73.  *    may be used to endorse or promote products derived from this software
  74.  *    without specific prior written permission.
  75.  *
  76.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  77.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  78.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  79.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  80.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  81.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  82.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  83.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  84.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  85.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  86.  * SUCH DAMAGE.
  87.  *
  88.  *    @(#)ioctl.h    7.19 (Berkeley) 6/26/91
  89.  */
  90.  
  91. /*
  92.  * Ioctl definitions
  93.  */
  94. #ifndef    _IOCTL_
  95. #define    _IOCTL_
  96. #import <sys/ttychars.h>
  97. #import <sys/ttydev.h>
  98.  
  99. struct tchars {
  100.     char    t_intrc;    /* interrupt */
  101.     char    t_quitc;    /* quit */
  102.     char    t_startc;    /* start output */
  103.     char    t_stopc;    /* stop output */
  104.     char    t_eofc;        /* end-of-file */
  105.     char    t_brkc;        /* input delimiter (like nl) */
  106. };
  107. struct ltchars {
  108.     char    t_suspc;    /* stop process signal */
  109.     char    t_dsuspc;    /* delayed stop process signal */
  110.     char    t_rprntc;    /* reprint line */
  111.     char    t_flushc;    /* flush output (toggles) */
  112.     char    t_werasc;    /* word erase */
  113.     char    t_lnextc;    /* literal next character */
  114. };
  115.  
  116. /*
  117.  * Structure for TIOCGETP and TIOCSETP ioctls.
  118.  */
  119.  
  120. #ifndef _SGTTYB_
  121. #define    _SGTTYB_
  122. struct sgttyb {
  123.     char    sg_ispeed;        /* input speed */
  124.     char    sg_ospeed;        /* output speed */
  125.     char    sg_erase;        /* erase character */
  126.     char    sg_kill;        /* kill character */
  127.     short    sg_flags;        /* mode flags */
  128. };
  129. #endif    _SGTTYB_
  130.  
  131. /*
  132.  * Window/terminal size structure.
  133.  * This information is stored by the kernel
  134.  * in order to provide a consistent interface,
  135.  * but is not used by the kernel.
  136.  *
  137.  * Type must be "unsigned short" so that types.h not required.
  138.  */
  139. struct winsize {
  140.     unsigned short    ws_row;            /* rows, in characters */
  141.     unsigned short    ws_col;            /* columns, in characters */
  142.     unsigned short    ws_xpixel;        /* horizontal size, pixels */
  143.     unsigned short    ws_ypixel;        /* vertical size, pixels */
  144. };
  145.  
  146. /*
  147.  * Pun for SUN.
  148.  */
  149. struct ttysize {
  150.     unsigned short    ts_lines;
  151.     unsigned short    ts_cols;
  152.     unsigned short    ts_xxx;
  153.     unsigned short    ts_yyy;
  154. };
  155. #define    TIOCGSIZE    TIOCGWINSZ
  156. #define    TIOCSSIZE    TIOCSWINSZ
  157.  
  158. #ifndef _IO
  159. /*
  160.  * Ioctl's have the command encoded in the lower word,
  161.  * and the size of any in or out parameters in the upper
  162.  * word.  The high 2 bits of the upper word are used
  163.  * to encode the in/out status of the parameter; for now
  164.  * we restrict parameters to at most 128 bytes.
  165.  */
  166. #define    IOCPARM_MASK    0x7f        /* parameters must be < 128 bytes */
  167. #define    IOC_VOID    0x20000000    /* no parameters */
  168. #define    IOC_OUT        0x40000000    /* copy out parameters */
  169. #define    IOC_IN        0x80000000    /* copy in parameters */
  170. #define    IOC_INOUT    (IOC_IN|IOC_OUT)
  171. /* the 0x20000000 is so we can distinguish new ioctl's from old */
  172. #define    _IO(x,y)    (IOC_VOID|(x<<8)|y)
  173. #define    _IOR(x,y,t)    (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
  174. #define    _IOW(x,y,t)    (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
  175. /* this should be _IORW, but stdio got there first */
  176. #define    _IOWR(x,y,t)    (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
  177. #endif    _IO
  178.  
  179. /*
  180.  * tty ioctl commands
  181.  */
  182. #define    TIOCGETD    _IOR('t', 0, int)        /* get line discipline */
  183. #define    TIOCSETD    _IOW('t', 1, int)        /* set line discipline */
  184. #define    TIOCHPCL    _IO('t', 2)        /* hang up on last close */
  185. #define    TIOCMODG    _IOR('t', 3, int)        /* get modem control state */
  186. #define    TIOCMODS    _IOW('t', 4, int)        /* set modem control state */
  187. #define        TIOCM_LE    0001        /* line enable */
  188. #define        TIOCM_DTR    0002        /* data terminal ready */
  189. #define        TIOCM_RTS    0004        /* request to send */
  190. #define        TIOCM_ST    0010        /* secondary transmit */
  191. #define        TIOCM_SR    0020        /* secondary receive */
  192. #define        TIOCM_CTS    0040        /* clear to send */
  193. #define        TIOCM_CAR    0100        /* carrier detect */
  194. #define        TIOCM_CD    TIOCM_CAR
  195. #define        TIOCM_RNG    0200        /* ring */
  196. #define        TIOCM_RI    TIOCM_RNG
  197. #define        TIOCM_DSR    0400        /* data set ready */
  198. #define    TIOCGETP    _IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
  199. #define    TIOCSETP    _IOW('t', 9,struct sgttyb)/* set parameters -- stty */
  200. #define    TIOCSETN    _IOW('t',10,struct sgttyb)/* as above, but no flushtty */
  201. #define    TIOCEXCL    _IO('t', 13)        /* set exclusive use of tty */
  202. #define    TIOCNXCL    _IO('t', 14)        /* reset exclusive use of tty */
  203. #define    TIOCFLUSH    _IOW('t', 16, int)    /* flush buffers */
  204. #define    TIOCSETC    _IOW('t',17,struct tchars)/* set special characters */
  205. #define    TIOCGETC    _IOR('t',18,struct tchars)/* get special characters */
  206. #define        TANDEM        0x00000001    /* send stopc on out q full */
  207. #define        CBREAK        0x00000002    /* half-cooked mode */
  208. #define        LCASE        0x00000004    /* simulate lower case */
  209. #define        ECHO        0x00000008    /* echo input */
  210. #define        CRMOD        0x00000010    /* map \r to \r\n on output */
  211. #define        RAW        0x00000020    /* no i/o processing */
  212. #define        ODDP        0x00000040    /* get/send odd parity */
  213. #define        EVENP        0x00000080    /* get/send even parity */
  214. #define        ANYP        0x000000c0    /* get any parity/send even */
  215. #define        NLDELAY        0x00000300    /* \n delay */
  216. #define            NL0    0x00000000
  217. #define            NL1    0x00000100    /* tty 37 */
  218. #define            NL2    0x00000200    /* vt05 */
  219. #define            NL3    0x00000300
  220. #define        TBDELAY        0x00000c00    /* horizontal tab delay */
  221. #define            TAB0    0x00000000
  222. #define            TAB1    0x00000400    /* tty 37 */
  223. #define            TAB2    0x00000800
  224. #define        XTABS        0x00000c00    /* expand tabs on output */
  225. #define        CRDELAY        0x00003000    /* \r delay */
  226. #define            CR0    0x00000000
  227. #define            CR1    0x00001000    /* tn 300 */
  228. #define            CR2    0x00002000    /* tty 37 */
  229. #define            CR3    0x00003000    /* concept 100 */
  230. #define        VTDELAY        0x00004000    /* vertical tab delay */
  231. #define            FF0    0x00000000
  232. #define            FF1    0x00004000    /* tty 37 */
  233. #define        BSDELAY        0x00008000    /* \b delay */
  234. #define            BS0    0x00000000
  235. #define            BS1    0x00008000
  236. #define        ALLDELAY    (NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY)
  237. #define        CRTBS        0x00010000    /* do backspacing for crt */
  238. #define        PRTERA        0x00020000    /* \ ... / erase */
  239. #define        CRTERA        0x00040000    /* " \b " to wipe out char */
  240. #if    NeXT
  241. #define        EUCBKSP        0x00080000    /* EUC backspace processing */
  242. #else    NeXT
  243. #define        TILDE        0x00080000    /* hazeltine tilde kludge */
  244. #endif    NeXT
  245. #define        MDMBUF        0x00100000    /* start/stop output on carrier intr */
  246. #define        LITOUT        0x00200000    /* literal output */
  247. #define        TOSTOP        0x00400000    /* SIGSTOP on background output */
  248. #define        FLUSHO        0x00800000    /* flush output to terminal */
  249. #define        NOHANG        0x01000000    /* no SIGHUP on carrier drop */
  250. #define        PASS8OUT    0x02000000    /* 8 bit no parity for cooked output */
  251. #define        CRTKIL        0x04000000    /* kill line with " \b " */
  252. #define        PASS8        0x08000000    /* 8 bit no parity for cooked input */
  253. #define        CTLECH        0x10000000    /* echo control chars as ^X */
  254. #define        PENDIN        0x20000000    /* tp->t_rawq needs reread */
  255. #define        DECCTQ        0x40000000    /* only ^Q starts after ^S */
  256. #define        NOFLSH        0x80000000    /* no output flush on signal */
  257. /* locals, from 127 down */
  258. #define    TIOCLBIS    _IOW('t', 127, int)    /* bis local mode bits */
  259. #define    TIOCLBIC    _IOW('t', 126, int)    /* bic local mode bits */
  260. #define    TIOCLSET    _IOW('t', 125, int)    /* set entire local mode word */
  261. #define    TIOCLGET    _IOR('t', 124, int)    /* get local modes */
  262. #define        LCRTBS        (CRTBS>>16)
  263. #define        LPRTERA        (PRTERA>>16)
  264. #define        LCRTERA        (CRTERA>>16)
  265. #if    NeXT
  266. #define        LEUCBKSP    (EUCBKSP>>16)
  267. #else    NeXT
  268. #define        LTILDE        (TILDE>>16)
  269. #endif    NeXT
  270. #define        LMDMBUF        (MDMBUF>>16)
  271. #define        LLITOUT        (LITOUT>>16)
  272. #define        LTOSTOP        (TOSTOP>>16)
  273. #define        LFLUSHO        (FLUSHO>>16)
  274. #define        LNOHANG        (NOHANG>>16)
  275. #define        LPASS8OUT    (PASS8OUT>>16)
  276. #define        LCRTKIL        (CRTKIL>>16)
  277. #define        LPASS8        (PASS8>>16)
  278. #define        LCTLECH        (CTLECH>>16)
  279. #define        LPENDIN        (PENDIN>>16)
  280. #define        LDECCTQ        (DECCTQ>>16)
  281. #define        LNOFLSH        (NOFLSH>>16)
  282. #define    TIOCSBRK    _IO('t', 123)        /* set break bit */
  283. #define    TIOCCBRK    _IO('t', 122)        /* clear break bit */
  284. #define    TIOCSDTR    _IO('t', 121)        /* set data terminal ready */
  285. #define    TIOCCDTR    _IO('t', 120)        /* clear data terminal ready */
  286. #define    TIOCGPGRP    _IOR('t', 119, int)    /* get pgrp of tty */
  287. #define    TIOCSPGRP    _IOW('t', 118, int)    /* set pgrp of tty */
  288. #define    TIOCSLTC    _IOW('t',117,struct ltchars)/* set local special chars */
  289. #define    TIOCGLTC    _IOR('t',116,struct ltchars)/* get local special chars */
  290. #define    TIOCOUTQ    _IOR('t', 115, int)    /* output queue size */
  291. #define    TIOCSTI        _IOW('t', 114, char)    /* simulate terminal input */
  292. #define    TIOCNOTTY    _IO('t', 113)        /* void tty association */
  293. #define    TIOCPKT        _IOW('t', 112, int)    /* pty: set/clear packet mode */
  294. #define        TIOCPKT_DATA        0x00    /* data packet */
  295. #define        TIOCPKT_FLUSHREAD    0x01    /* flush packet */
  296. #define        TIOCPKT_FLUSHWRITE    0x02    /* flush packet */
  297. #define        TIOCPKT_STOP        0x04    /* stop output */
  298. #define        TIOCPKT_START        0x08    /* start output */
  299. #define        TIOCPKT_NOSTOP        0x10    /* no more ^S, ^Q */
  300. #define        TIOCPKT_DOSTOP        0x20    /* now do ^S ^Q */
  301. #define        TIOCPKT_IOCTL        0x40    /* pty driver state change */
  302. #define    TIOCSTOP    _IO('t', 111)        /* stop output, like ^S */
  303. #define    TIOCSTART    _IO('t', 110)        /* start output, like ^Q */
  304. #define    TIOCMSET    _IOW('t', 109, int)    /* set all modem bits */
  305. #define    TIOCMBIS    _IOW('t', 108, int)    /* bis modem bits */
  306. #define    TIOCMBIC    _IOW('t', 107, int)    /* bic modem bits */
  307. #define    TIOCMGET    _IOR('t', 106, int)    /* get all modem bits */
  308. #define    TIOCREMOTE    _IOW('t', 105, int)    /* remote input editing */
  309. #define    TIOCSCONS    _IO('t', 104)        /* 4.2 compatibility */
  310.  
  311. #define    TIOCGWINSZ    _IOR('t', 104, struct winsize)    /* get window size */
  312. #define    TIOCSWINSZ    _IOW('t', 103, struct winsize)    /* set window size */
  313. #define    TIOCUCNTL    _IOW('t', 102, int)    /* pty: set/clr usr cntl mode */
  314.  
  315. #define        UIOCCMD(n)    _IO('u', n)        /* usr cntl op "n" */
  316. #define    TIOCCONS    _IO('t', 98)        /* become virtual console */
  317. #define    TIOCEXT        _IOW('t', 97, int)    /* pty: external processing */
  318. #define    TIOCGSTATE    _IOR('t', 96, int)    /* pty: get internal state */
  319. #define    TIOCSIG        _IO('t', 95)        /* pty: generate signal */
  320.  
  321. /*
  322.  * Posix support
  323.  */
  324. #import <sys/termios.h>
  325. #define TIOCGETA    _IOR('t', 19, struct termios) /* get termios struct */
  326. #define TIOCSETA    _IOW('t', 20, struct termios) /* set termios struct */
  327. #define TIOCSETAW    _IOW('t', 21, struct termios) /* drain output, set */
  328. #define TIOCSETAF    _IOW('t', 22, struct termios) /* drn out, fls in, set */
  329. #define TIOCDRAIN    _IO('t', 94)        /* wait till output drained */
  330.  
  331. #define    OTTYDISC    0        /* old, v7 std tty driver */
  332. #define    NETLDISC    1        /* line discip for berk net */
  333. #define    NTTYDISC    2        /* new tty discipline */
  334. #define    TABLDISC    3        /* tablet discipline */
  335. #define    SLIPDISC    4        /* serial IP discipline */
  336. #define    PPPDISC        5        /* Point-to-Point Protocol */
  337.  
  338. #define    FIOCLEX        _IO('f', 1)        /* set exclusive use on fd */
  339. #define    FIONCLEX    _IO('f', 2)        /* remove exclusive use */
  340. #define    FIOCDIROK    _IOW('f', 104, int)
  341. /* CS_RPAUSE */
  342. /* Disk space resource pause per-file control */
  343. #define    FIOCNOSPC    _IOWR('f', 106, int)
  344. #define    FIOCNOSPC_SAME    0            /* no change */
  345. #define    FIOCNOSPC_ERROR    1            /* prohibit pause */
  346. #define    FIOCNOSPC_PAUSE    2            /* allow pause */
  347. /* CS_RPAUSE */
  348. /* another local */
  349. #define    FIONREAD    _IOR('f', 127, int)    /* get # bytes to read */
  350. #define    FIONBIO        _IOW('f', 126, int)    /* set/clear non-blocking i/o */
  351. #define    FIOASYNC    _IOW('f', 125, int)    /* set/clear async i/o */
  352. #define    FIOSETOWN    _IOW('f', 124, int)    /* set owner */
  353. #define    FIOGETOWN    _IOR('f', 123, int)    /* get owner */
  354.  
  355. /* socket i/o controls */
  356. #define    SIOCSHIWAT    _IOW('s',  0, int)        /* set high watermark */
  357. #define    SIOCGHIWAT    _IOR('s',  1, int)        /* get high watermark */
  358. #define    SIOCSLOWAT    _IOW('s',  2, int)        /* set low watermark */
  359. #define    SIOCGLOWAT    _IOR('s',  3, int)        /* get low watermark */
  360. #define    SIOCATMARK    _IOR('s',  7, int)        /* at oob mark? */
  361. #define    SIOCSPGRP    _IOW('s',  8, int)        /* set process group */
  362. #define    SIOCGPGRP    _IOR('s',  9, int)        /* get process group */
  363.  
  364. #define    SIOCADDRT    _IOW('r', 10, struct rtentry)    /* add route */
  365. #define    SIOCDELRT    _IOW('r', 11, struct rtentry)    /* delete route */
  366.  
  367. #define    SIOCSIFADDR    _IOW('i', 12, struct ifreq)        /* set ifnet address */
  368. #define    SIOCGIFADDR    _IOWR('i',13, struct ifreq)        /* get ifnet address */
  369. #define    SIOCSIFDSTADDR    _IOW('i', 14, struct ifreq)    /* set p-p address */
  370. #define    SIOCGIFDSTADDR    _IOWR('i',15, struct ifreq)    /* get p-p address */
  371. #define    SIOCSIFFLAGS    _IOW('i', 16, struct ifreq)    /* set ifnet flags */
  372. #define    SIOCGIFFLAGS    _IOWR('i',17, struct ifreq)    /* get ifnet flags */
  373. #define    SIOCGIFBRDADDR    _IOWR('i',18, struct ifreq)    /* get broadcast addr */
  374. #define    SIOCSIFBRDADDR    _IOW('i',19, struct ifreq)    /* set broadcast addr */
  375. #define    SIOCGIFCONF    _IOWR('i',20, struct ifconf)    /* get ifnet list */
  376. #define    SIOCGIFNETMASK    _IOWR('i',21, struct ifreq)    /* get net addr mask */
  377. #define    SIOCSIFNETMASK    _IOW('i',22, struct ifreq)    /* set net addr mask */
  378. #define    SIOCGIFMETRIC    _IOWR('i',23, struct ifreq)    /* get IF metric */
  379. #define    SIOCSIFMETRIC    _IOW('i',24, struct ifreq)    /* set IF metric */
  380.  
  381. #define    SIOCSARP    _IOW('i', 30, struct arpreq)    /* set arp entry */
  382. #define    SIOCGARP    _IOWR('i',31, struct arpreq)    /* get arp entry */
  383. #define    SIOCDARP    _IOW('i', 32, struct arpreq)    /* delete arp entry */
  384. #define    SIOCAUTOADDR    _IOWR('i', 33, struct ifreq)/* autoconf addr */
  385. #define SIOCAUTONETMASK    _IOW('i', 34, struct ifreq)    /* autoconf netmask */
  386.  
  387. /* #ifdef MULTICAST */
  388. #define    SIOCADDMULTI    _IOW('i', 49, struct ifreq)    /* add m'cast addr */
  389. #define    SIOCDELMULTI    _IOW('i', 50, struct ifreq)    /* del m'cast addr */
  390. /* #endif MULTICAST */
  391.  
  392. #define    SIOCSIFMTU    _IOW('i',127, struct ifreq)        /* set ifnet mtu */
  393. #define    SIOCGIFMTU    _IOWR('i',126, struct ifreq)    /* get ifnet mtu */
  394. #define    SIOCSIFASYNCMAP    _IOW('i',125, struct ifreq)    /* set ppp asyncmap */
  395. #define    SIOCGIFASYNCMAP    _IOWR('i',124, struct ifreq)/* get ppp asyncmap */
  396.  
  397. #define SIOCBROAD    _IO('s', 255)                    /* enable broadcast */
  398.  
  399. #endif    _IOCTL_
  400.  
  401.  
  402.